--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/hashes.py HEAD (3535327f) Text, 4.10 KB
Tff7b72import T7ee787hashlib
Tff7b72import T7ee787random
Tff7b72import T7ee787RNS
Tff7b72import T7ee787os
Tff7b72import T7ee787time
Tff7b72import T7ee787unittest
Tff7b72class T56d364TestSHA256Tb4b4b4(Te6edf3unittestTff7b72.Td2a8ffTestCaseTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffsetUpTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fff Tff7b72= Te6edf3RNSTff7b72.Td2a8ffCryptographyTff7b72.Td2a8ffsha256
Tff7b72def Td2a8fftest_emptyTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(
Tff7b72selfTff7b72.Td2a8fffTb4b4b4(Ta5d6ff'Ta5d6ff'Tff7b72.Td2a8ffencodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Ta5d6ff"Ta5d6ffe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_less_than_block_lengthTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(
Tff7b72selfTff7b72.Td2a8fffTb4b4b4(Ta5d6ff'Ta5d6ffabcTa5d6ff'Tff7b72.Td2a8ffencodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Ta5d6ff"Ta5d6ffba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015adTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_block_lengthTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(
Tff7b72selfTff7b72.Td2a8fffTb4b4b4(Ta5d6ff'Ta5d6ffaTa5d6ff'Tff7b72.Td2a8ffencodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tff7b72*T79c0ff64Tb4b4b4)Tb4b4b4,
Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Ta5d6ff"Ta5d6ffffe054fe7ae0cb6dc65c3af9b61d5209f439851db43d0ba5997337df154668ebTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_several_blocksTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(
Tff7b72selfTff7b72.Td2a8fffTb4b4b4(Ta5d6ff'Ta5d6ffaTa5d6ff'Tff7b72.Td2a8ffencodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tff7b72*T79c0ff1000000Tb4b4b4)Tb4b4b4,
Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Ta5d6ff"Ta5d6ffcdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_random_blocksTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3max_rounds Tff7b72= T79c0ff5000
Te6edf3b Tff7b72= T79c0ff0
Te6edf3i Tff7b72= T79c0ff0
Te6edf3ok Tff7b72= Tff7b72True
Te6edf3start Tff7b72= Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72while Te6edf3ok Tff7b72and Te6edf3i Tff7b72< Te6edf3max_roundsTb4b4b4:
Te6edf3i Tff7b72+Tff7b72= T79c0ff1
Te6edf3rlen Tff7b72= Te6edf3randomTff7b72.Td2a8ffrandintTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1024Tff7b72*T79c0ff16Tb4b4b4)
Te6edf3rdat Tff7b72= Te6edf3osTff7b72.Td2a8ffurandomTb4b4b4(Te6edf3rlenTb4b4b4)
Te6edf3b Tff7b72+Tff7b72= Te6edf3rlen
Te6edf3msg Tff7b72= Te6edf3rdat
Te6edf3ok Tff7b72= Te6edf3RNSTff7b72.Td2a8ffCryptographyTff7b72.Td2a8ffsha256Tb4b4b4(Te6edf3msgTb4b4b4) Tff7b72== Te6edf3hashlibTff7b72.Td2a8ffsha256Tb4b4b4(Te6edf3msgTb4b4b4)Tff7b72.Td2a8ffdigestTb4b4b4(Tb4b4b4)
T8b949e# t = RNS.Cryptography.sha256(msg)
T8b949e# t = hashlib.sha256(msg).digest()
Tff7b72if Tb4b4b4(Te6edf3iTff7b72%T79c0ff1000 Tff7b72== T79c0ff0Tb4b4b4)Tb4b4b4:
Te6edf3gbytes Tff7b72= Tffa657roundTb4b4b4(Te6edf3bTff7b72/T79c0ff1000000000Tb4b4b4,T79c0ff3Tb4b4b4)
Te6edf3mbps Tff7b72= Tffa657roundTb4b4b4(Tb4b4b4(Te6edf3bTff7b72*T79c0ff8Tff7b72/T79c0ff1000000Tb4b4b4)Tff7b72/Tb4b4b4(Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)Tff7b72-Te6edf3startTb4b4b4)Tb4b4b4, T79c0ff2Tb4b4b4)
Tffa657printTb4b4b4(Tffa657strTb4b4b4(Te6edf3iTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff rounds OK, total data: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3gbytesTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ffGB, Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3mbpsTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ffmbpsTa5d6ff"Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3okTb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffFailed at round Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3iTb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffSHA-256 test OKTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(Te6edf3okTb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72class T56d364TestSHA512Tb4b4b4(Te6edf3unittestTff7b72.Td2a8ffTestCaseTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffsetUpTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fff Tff7b72= Te6edf3RNSTff7b72.Td2a8ffCryptographyTff7b72.Td2a8ffsha512
Tff7b72def Td2a8fftest_emptyTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(
Tff7b72selfTff7b72.Td2a8fffTb4b4b4(Ta5d6ff'Ta5d6ff'Tff7b72.Td2a8ffencodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(
Ta5d6ff'Ta5d6ffcf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ceTa5d6ff'Tff7b72+
Ta5d6ff'Ta5d6ff47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3eTa5d6ff'Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_less_than_block_lengthTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(Tff7b72selfTff7b72.Td2a8fffTb4b4b4(Ta5d6ff'Ta5d6ffabcTa5d6ff'Tff7b72.Td2a8ffencodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(
Ta5d6ff'Ta5d6ffddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39aTa5d6ff'Tff7b72+
Ta5d6ff'Ta5d6ff2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49fTa5d6ff'Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_block_lengthTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(Tff7b72selfTff7b72.Td2a8fffTb4b4b4(Ta5d6ff'Ta5d6ffaTa5d6ff'Tff7b72.Td2a8ffencodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tff7b72*T79c0ff128Tb4b4b4)Tb4b4b4,
Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(
Ta5d6ff'Ta5d6ffb73d1929aa615934e61a871596b3f3b33359f42b8175602e89f7e06e5f658a24Ta5d6ff'Tff7b72+
Ta5d6ff'Ta5d6ff3667807ed300314b95cacdd579f3e33abdfbe351909519a846d465c59582f321Ta5d6ff'Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_several_blocksTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(Tff7b72selfTff7b72.Td2a8fffTb4b4b4(Ta5d6ff'Ta5d6ffaTa5d6ff'Tff7b72.Td2a8ffencodeTb4b4b4(Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tff7b72*T79c0ff1000000Tb4b4b4)Tb4b4b4,
Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(
Ta5d6ff'Ta5d6ffe718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebTa5d6ff'Tff7b72+
Ta5d6ff'Ta5d6ffde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09bTa5d6ff'Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_random_blocksTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3max_rounds Tff7b72= T79c0ff5000
Te6edf3b Tff7b72= T79c0ff0
Te6edf3i Tff7b72= T79c0ff0
Te6edf3ok Tff7b72= Tff7b72True
Te6edf3start Tff7b72= Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72while Te6edf3ok Tff7b72and Te6edf3i Tff7b72< Te6edf3max_roundsTb4b4b4:
Te6edf3i Tff7b72+Tff7b72= T79c0ff1
Te6edf3rlen Tff7b72= Te6edf3randomTff7b72.Td2a8ffrandintTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1024Tff7b72*T79c0ff16Tb4b4b4)
Te6edf3rdat Tff7b72= Te6edf3osTff7b72.Td2a8ffurandomTb4b4b4(Te6edf3rlenTb4b4b4)
Te6edf3b Tff7b72+Tff7b72= Te6edf3rlen
Te6edf3msg Tff7b72= Te6edf3rdat
Te6edf3ok Tff7b72= Te6edf3RNSTff7b72.Td2a8ffCryptographyTff7b72.Td2a8ffsha512Tb4b4b4(Te6edf3msgTb4b4b4) Tff7b72== Te6edf3hashlibTff7b72.Td2a8ffsha512Tb4b4b4(Te6edf3msgTb4b4b4)Tff7b72.Td2a8ffdigestTb4b4b4(Tb4b4b4)
T8b949e# t = RNS.Cryptography.sha512(msg)
T8b949e# t = hashlib.sha512(msg).digest()
Tff7b72if Tb4b4b4(Te6edf3iTff7b72%T79c0ff1000 Tff7b72== T79c0ff0Tb4b4b4)Tb4b4b4:
Te6edf3gbytes Tff7b72= Tffa657roundTb4b4b4(Te6edf3bTff7b72/T79c0ff1000000000Tb4b4b4,T79c0ff3Tb4b4b4)
Te6edf3mbps Tff7b72= Tffa657roundTb4b4b4(Tb4b4b4(Te6edf3bTff7b72*T79c0ff8Tff7b72/T79c0ff1000000Tb4b4b4)Tff7b72/Tb4b4b4(Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)Tff7b72-Te6edf3startTb4b4b4)Tb4b4b4, T79c0ff2Tb4b4b4)
Tffa657printTb4b4b4(Tffa657strTb4b4b4(Te6edf3iTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff rounds OK, total data: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3gbytesTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ffGB, Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3mbpsTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ffmbpsTa5d6ff"Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3okTb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffFailed at round Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3iTb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffSHA-512 test OKTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffassertEqualTb4b4b4(Te6edf3okTb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff'Ta5d6ff__main__Ta5d6ff'Tb4b4b4:
Te6edf3unittestTff7b72.Td2a8ffmainTb4b4b4(Te6edf3verbosityTff7b72=T79c0ff2Tb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────